이 글에서는 컴퓨터의 동작 원리와 핵심 장치를 살펴보고자 합니다.
튜링 기계
이론적으로 어떤 계산 문제든 풀 수 있는 일반적인 계산 모델로서, 현대 컴퓨터 과학의 기초적인 이론과 개념을 제공합니다. 따라서 튜링 기계는 알고리즘 이론, 계산 이론, 프로그래밍 언어 및 컴파일러 이론, 컴퓨터 아키텍처 등의 분야에서 중요한 개념으로 사용됩니다.
주요 요소
- 테이프: 무한히 긴 양방향 테이프로, 여기에는 0 또는 1의 기호가 기록될 수 있습니다.
- 헤드: 테이프를 읽고 쓰며, 현재 위치의 기호를 읽을 수 있습니다.
- 상태와 규칙: 현재의 내부 상태와 동작을 나타냅니다. 위 그림에서 A, B, C, H가 상태 입니다. 각 상태에서 무슨 기호를 적을 지, 헤드를 어느 방향으로 움직일 지, 어느 상태로 이동할 지 지정하며 이를 규칙이라 합니다.
- 예) 만약 현재 상태가 A이고 현재 읽은 테이프의 기호가 0이면, 현재 기호에 P(1)를 적고 다음 상태는 B로 바꾸며 테이프는 오른쪽(R)으로 이동한다
튜링 기계는 이러한 규칙을 따라 계속해서 테이프를 읽고 쓰고 이동합니다. 상태 변화와 헤드의 이동은 반복적으로 일어나며, 이를 통해 어떤 계산 문제든지 해결할 수 있습니다.
이와 유사한 구조를 가진 현대 장치로는 하드 디스크 드라이브가 있습니다. (다음 내용에서 저장 장치의 한 예시인 하드 디스크가 바로 이것입니다.)
컴퓨터에 저장되는 모든 데이터는 0,1 두 디지털 신호에 의해 이루어집니다. 하드 디스크의 경우 이러한 디지털 신호를 원반 형태의 플래터에 기록합니다. 디지털 신호의 기록은 자기장의 밀도 변화를 이용해 기록합니다. 바늘(헤드)가 플래터 위의 일정한 간격을 지나치는 동안 자기장의 극성이 변화하면 1, 그렇지 않으면 0으로 인식합니다.
폰 노이만 구조
현대 컴퓨터 아키텍처의 기초가 된 중요한 개념 중 하나로 이후의 대부분의 컴퓨터 시스템과 아키텍처에 영향을 미쳤습니다.
주요 특징
- 단일 중앙 처리 장치: 폰 노이만 아키텍처는 하나의 중앙 처리 장치(CPU)를 사용합니다. CPU는 연산과 제어를 담당하며, 프로그램 명령어를 순차적으로 실행합니다.
- 메모리: 폰 노이만 아키텍처에서는 데이터와 프로그램 명령어가 메모리에 저장됩니다. 이러한 메모리는 데이터와 명령어를 읽고 쓸 수 있는 장치로서 사용됩니다.
- 저장 장치: 데이터와 프로그램은 메모리에서 읽히고 실행되기 전에 저장 장치에서 메모리로 복사됩니다. 저장 장치는 하드 디스크, SSD 등과 같은 형태일 수 있습니다.
- 프로그램 카운터: CPU에는 현재 실행 중인 명령어의 위치를 가리키는 프로그램 카운터가 있습니다. 이 카운터는 다음에 실행될 명령어의 주소를 가리킵니다.
- 명령어 집합: 폰 노이만 아키텍처에서는 명령어들이 이진 코드로 표현되며, CPU가 이러한 명령어를 해석하고 실행합니다. 명령어는 데이터 처리, 연산, 분기, 메모리 접근 등 다양한 작업을 수행할 수 있습니다.
- 프로그램과 데이터의 분리: 폰 노이만 아키텍처에서는 프로그램과 데이터가 메모리에 저장되며, CPU는 이 둘을 구분하여 처리합니다. 이것은 프로그램이 프로그램을 수정하거나 실행 중에 새로운 프로그램을 로드하는 데 유용합니다